﻿namespace CSW.Framework.Common.Utils.ExcelUtils
{
    /// <summary>
    /// Token Identifier. See section 3.4.
    /// </summary>
    public enum TokenIdentifier
    {
        /// <summary>
        /// Matrix formula or shared formula
        /// </summary>
        tExp = 0x01,
        /// <summary>
        /// Multiple operation table
        /// </summary>
        tTbl = 0x02,
        /// <summary>Addition</summary>
        tAdd = 0x03,
        /// <summary>Subtraction</summary>
        tSub = 0x04,
        /// <summary>Multiplication</summary>
        tMul = 0x05,
        /// <summary>Division</summary>
        tDiv = 0x06,
        /// <summary>Exponentiation</summary>
        tPower = 0x07,
        /// <summary>Concatenation</summary>
        tConcat = 0x08,
        /// <summary>Less than</summary>
        tLT = 0x09,
        /// <summary>Less than or equal</summary>
        tLE = 0x0A,
        /// <summary>Equal</summary>
        tEQ = 0x0B,
        /// <summary>Greater than or equal</summary>
        tGE = 0x0C,
        /// <summary>Greater than</summary>
        tGT = 0x0D,
        /// <summary>Not equal</summary>
        tNE = 0x0E,
        /// <summary>Cell range intersection</summary>
        tIsect = 0x0F,
        /// <summary>Cell range list</summary>
        tList = 0x10,
        /// <summary>Cell range</summary>
        tRange = 0x11,
        /// <summary>Unary plus</summary>
        tUplus = 0x12,
        /// <summary>Unary minus</summary>
        tUminus = 0x13,
        /// <summary>Percent sign</summary>
        tPercent = 0x14,
        /// <summary>
        /// Parentheses
        /// </summary>
        tParen = 0x15,
        /// <summary>
        /// Missing argument
        /// </summary>
        tMissArg = 0x16,
        /// <summary>
        /// String constant
        /// </summary>
        tStr = 0x17,
        /// <summary>
        /// Natural language reference (BIFF8)
        /// </summary>
        tNlr = 0x18,
        /// <summary>
        /// Special attribute
        /// </summary>
        tAttr = 0x19,
        ///// <summary>Start of external sheet reference (BIFF2-BIFF4)/// </summary>
        //tSheet = 0x1A,
        ///// <summary>End of external sheet reference (BIFF2-BIFF4)</summary>
        //tEndSheet = 0x1B,
        /// <summary>
        /// Error constant
        /// </summary>
        tErr = 0x1C,
        /// <summary>
        /// Boolean constant
        /// </summary>
        tBool = 0x1D,
        /// <summary>
        /// Integer constant
        /// </summary>
        tInt = 0x1E,
        /// <summary>Floating-point constant</summary>
        tNum = 0x1F,
        /// <summary>Index to a built-in function or a macro (R)</summary>
        tFuncVarR = 0x22,
        /// <summary>Index to a built-in function or a macro (V)</summary>
        tFuncVarV = 0x42,
        /// <summary>Index to a built-in function or a macro (A)</summary>
        tFuncVarA = 0x62
    }
}
